Imagine uma biblioteca onde os livros não são organizados pela data de chegada, mas por uma Chave Universal. Esse é o deslocamento paradigmático da sequencialidade para Contêineres Associativos. Em vez de percorrer um vetor linearmente ($O(N)$), utilizamos um mapa ou conjunto para alcançar buscas em tempo logarítmico ($O(\log n)$).
1. A Natureza da Associação
Em um mapa, armazenamos pares chave-valor. A chave atua como um índice que pode ser uma string, um objeto personalizado ou qualquer tipo que suporte Ordenação Estrita Fraca. Um conjunto, por outro lado, armazena apenas chaves únicas, tornando-o a ferramenta ideal para testes de pertencimento ou filtragem.
2. Ordenado vs. Não Ordenado
Contêineres padrão (mapa, conjunto) mantêm as chaves ordenadas. O Padrão C++11 introduziu variantes não ordenadas (unordered_map) que usam uma função de hash para desempenho médio de $O(1)$. Procure pelo Logotipo C++11 ao utilizar esses buckets de alto desempenho.